package com.jic.market.entity;

import com.jic.common.base.vo.AdminOperate;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;

@Data
public class PromotionEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    private Set<Long> ids;
    /*
     *
     */
    private Long id;


    /*
     * 促销活动名称
     */
    private String promName;


    /*
     * 活动开始时间
     */
    private Date startTime;


    /*
     * 活动结束时间
     */
    private Date endTime;


    /*
     * 类型:1单一促销,2满量促销,3满额促销...
     */
    private Integer promType;

    /*
     * 促销前台类型 支付方式 29 we2000(支付立减), 30 微信支付(支付立减), 31 微众卡(支付立减), 32 企业购(支付立减)
     */
    private String payFrontPromType;


    /*
     * 促销类型:  1特价促销，2折扣促销，3直降促销，4满减折，5满量折，6满额减，7满额折，8满金额赠，9买商品赠...
     */
    private Integer frontPromType;


    /*
     * 选品类型:1部分参与,2全场参与
     */
    private Integer selectionRange;


    /*
     * 是否叠加应用，次数，-1否，n次数
     */
    private Integer overlayAppNum;


    /*
     * 赠品类型 1赠商品，2赠优惠券
     */
    private Integer giftType;


    /*
     * 秒杀
     */
    private String description;


    /*
     * 是否支持折上折 0否，1是
     */
    private Integer foldingFlag;


    /*
     * 是否排斥优惠券 0否，1是
     */
    private Integer rejectCouponsFlag;


    /*
     * 是否包邮 0否，1是
     */
    private Integer parcelsFlag;


    /*
     * 超限规则，1按原价购买，2不可购买
     */
    private Integer overLimitRule;


    /*
     * 活动渠道code
     */
    private String channelCodes;


    /*
     * 创建商家id
     */
    private Long createMerchantId;

    /**
     * 创建商家名称
     */
    private String createMerchantName;

    /**
     * 规则说明
     */
    private String ruleInfo;

    /**
     * 规则说明第二语言
     */
    private String ruleInfoLan2;

    /**
     * 秒杀活动标记 0:非秒杀活动 1:秒杀活动
     */
    private Integer seckillFlag;

    /*
     * 活动平台
     */
    private String proPlatform;


    /*
     * 用户类型
     */
    private String proUserType;


    /*
     * 会员类型
     */
    private String proMemberType;


    /*
     * 会员等级
     */
    private String proMemberLevel;

    /**
     * 活动标签id
     */
    private Long labelId;
    /**
     * 店铺地区code码
     */
    private String storeArea;
    /**
     * 用户地区code码
     */
    private String userArea;
    /**
     * 是否成本分摊0否 1是
     */
    private String costAllocationFlag;
    /**
     * 母平台分摊比例
     */
    private Integer parentAllocationScale;
    /**
     * 子平台分摊比例
     */
    private Integer childAllocationScale;
    /**
     * 商家平台分摊比例
     */
    private Integer merchantAllocationScale;
    /**
     * 店铺平台分摊比例
     */
    private Integer storeAllocationScale;
    /**
     * 平台id
     */
    private Long deptId;
    /**
     * 商家id
     */
    private Long merchantId;
    /**
     * 店铺id
     */
    private Long storeId;

    /*
     * 备注
     */
    private String remark;


    /***
     * 活动状态 0初始化 1 未审核  2 待审核  3未开始 4 审核不通过  5 进行中  6 已过期  7 已关闭
     */
    private Integer status;


    /***
     * 促销方式，对应前端是促销类型，和promotion_rule表中的conten_type一致
     */
    private Integer contentType;

    private String memTypes;

    /**
    *审核理由
    * */
    private String auditRemark;
    /*
     * 是否删除 0否，1是
     */
    private Integer deleteFlag;


    /*
     * 创建时间
     */
    private Date createTime;


    /*
     * 创建人
     */
    private Long creator;


    /*
     * 创建人姓名
     */
    private String creatorName;


    /*
     * 更新时间
     */
    private Date updateTime;


    /*
     * 更新人
     */
    private Long updator;


    /*
     * 更新人姓名
     */
    private String updatorName;

    private Integer overlayAppFlag;

    /**
     * 活动描述
     */
    private String ruleDesc;

    /*
     * 是否主赠相同0否，1是
     */
    private Integer mainGiftSameFlag;


    /*
     * 运费类型，1满x元，免运费，2满x元减y元运费
     */
    private Integer freightType;


    /*
     * 运费满x元
     */
    private BigDecimal freightValue;


    /*
     * 运费减免
     */
    private BigDecimal freightReducedValue;


    /*
     * 赠券节点，1订单已支付，2订单已收获，3订单已完成
     */
    private Integer giveCouponNode;

    //活动Id
    private String promotionId;
    //渠道id
    private String channelId;

    private AdminOperate adminOperate;

    private Integer deptType;

    private List<Long> merchantIds;
    private List<Long> storeIds;
    private Long bizId;

    public String getSearchKeyword() {
        return searchKeyword;
    }

    public void setSearchKeyword(String searchKeyword) {
        this.searchKeyword = searchKeyword;
    }

    public Long getBudget() {
        return budget;
    }

    public void setBudget(Long budget) {
        this.budget = budget;
    }

    public String getWarningNum() {
        return warningNum;
    }

    public void setWarningNum(String warningNum) {
        this.warningNum = warningNum;
    }

    private String promotionCode;

    //搜索词
    private String searchKeyword;
    //活动费用预算
    private Long budget;
    //预警比例
    private String warningNum;

    public Set<Long> getIds() {
        return ids;
    }

    public void setIds(Set<Long> ids) {
        this.ids = ids;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPromName() {
        return promName;
    }

    public void setPromName(String promName) {
        this.promName = promName;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getPromType() {
        return promType;
    }

    public void setPromType(Integer promType) {
        this.promType = promType;
    }

    public Integer getFrontPromType() {
        return frontPromType;
    }

    public void setFrontPromType(Integer frontPromType) {
        this.frontPromType = frontPromType;
    }

    public Integer getSelectionRange() {
        return selectionRange;
    }

    public void setSelectionRange(Integer selectionRange) {
        this.selectionRange = selectionRange;
    }

    public Integer getOverlayAppNum() {
        return overlayAppNum;
    }

    public void setOverlayAppNum(Integer overlayAppNum) {
        this.overlayAppNum = overlayAppNum;
    }

    public Integer getGiftType() {
        return giftType;
    }

    public void setGiftType(Integer giftType) {
        this.giftType = giftType;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getFoldingFlag() {
        return foldingFlag;
    }

    public void setFoldingFlag(Integer foldingFlag) {
        this.foldingFlag = foldingFlag;
    }

    public Integer getRejectCouponsFlag() {
        return rejectCouponsFlag;
    }

    public void setRejectCouponsFlag(Integer rejectCouponsFlag) {
        this.rejectCouponsFlag = rejectCouponsFlag;
    }

    public Integer getParcelsFlag() {
        return parcelsFlag;
    }

    public void setParcelsFlag(Integer parcelsFlag) {
        this.parcelsFlag = parcelsFlag;
    }

    public Integer getOverLimitRule() {
        return overLimitRule;
    }

    public void setOverLimitRule(Integer overLimitRule) {
        this.overLimitRule = overLimitRule;
    }

    public String getChannelCodes() {
        return channelCodes;
    }

    public void setChannelCodes(String channelCodes) {
        this.channelCodes = channelCodes;
    }

    public Long getCreateMerchantId() {
        return createMerchantId;
    }

    public void setCreateMerchantId(Long createMerchantId) {
        this.createMerchantId = createMerchantId;
    }

    public String getCreateMerchantName() {
        return createMerchantName;
    }

    public void setCreateMerchantName(String createMerchantName) {
        this.createMerchantName = createMerchantName;
    }

    public String getRuleInfo() {
        return ruleInfo;
    }

    public void setRuleInfo(String ruleInfo) {
        this.ruleInfo = ruleInfo;
    }

    public String getRuleInfoLan2() {
        return ruleInfoLan2;
    }

    public void setRuleInfoLan2(String ruleInfoLan2) {
        this.ruleInfoLan2 = ruleInfoLan2;
    }

    public Integer getSeckillFlag() {
        return seckillFlag;
    }

    public void setSeckillFlag(Integer seckillFlag) {
        this.seckillFlag = seckillFlag;
    }

    public String getProPlatform() {
        return proPlatform;
    }

    public void setProPlatform(String proPlatform) {
        this.proPlatform = proPlatform;
    }

    public String getProUserType() {
        return proUserType;
    }

    public void setProUserType(String proUserType) {
        this.proUserType = proUserType;
    }

    public String getProMemberType() {
        return proMemberType;
    }

    public void setProMemberType(String proMemberType) {
        this.proMemberType = proMemberType;
    }

    public String getProMemberLevel() {
        return proMemberLevel;
    }

    public void setProMemberLevel(String proMemberLevel) {
        this.proMemberLevel = proMemberLevel;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getContentType() {
        return contentType;
    }

    public void setContentType(Integer contentType) {
        this.contentType = contentType;
    }

    public Integer getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Integer deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getCreator() {
        return creator;
    }

    public void setCreator(Long creator) {
        this.creator = creator;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getUpdator() {
        return updator;
    }

    public void setUpdator(Long updator) {
        this.updator = updator;
    }

    public String getUpdatorName() {
        return updatorName;
    }

    public void setUpdatorName(String updatorName) {
        this.updatorName = updatorName;
    }
}
